The present invention relates to software distribution and maintenance methods and systems and more particularly to an improved scalable and efficient method and system for distributing and maintaining software applications across a network of electronic devices.
A complete software distribution and management system for a plurality of microprocessor-based devices coupled to an electronic network requires features such as effortless distribution of software and effortless maintenance of that software. As is well known, software applications often include multiple components which are stored as individual files. Installation of a software application to multiple devices typically requires copying each of these files to each device and sometimes, making appropriate changes to data already present on the device. For example, in the case of a Microsoft Windows application, directories often need to be created and environmental changes often need to be performed. It is common that many of these directories, individual files and environment changes are used by more than one application and are hence shared.
A particularly well suited method for identifying each of the files and changes is illustrated in commonly assigned U.S. Pat. No. 5,933,647, entitled xe2x80x9cSYSTEM AND METHOD FOR SOFTWARE DISTRIBUTION AND DESKTOP MANAGEMENT IN A COMPUTER NETWORK ENVIRONMENT,xe2x80x9d issued Aug. 3, 1999.
The ""647 patent teaches a system for distribution of a software in a customized configuration to a computer in network environment. The system includes a console means for creating distribution control information which is both associated with the software and related to the customized configuration. A server responsive to the console stores the software and the distribution control information. Electronically linked to the server is an agent for downloading the software from the server means, in accordance with the distribution control information. The agent means resides on the microprocessor-based device which downloads the software.
The ""647 patent teaches a system wherein software distribution and desktop management is performed from the workstation running the console component which includes an administrator. The workstation running the console is linked to a file server which in turn is linked to workstations running the agent components. It is noted according to the ""647 patent application profiling occurs on the console, the profile is stored on the file server, and the profile is distributed to the agents. The profile is a set of instructions to target devices on how to install an application.
The ""647 patent teaches using typical hardware elements including a workstation and a file server, and respective software elements which configure the hardware elements for operation. Software distribution is controlled by the administrator which profiles an application. The profile is stored in a database on a file server. The administrator schedules a distribution of the application, i.e., profile, using the scheduler, and specifies which agent based target devices should receive the application using a condition builder. Each agent detects a newly scheduled application, and evaluates the condition for distribution to see if the distribution to it is appropriate. If the distribution is appropriate for a particular agent, that agent pulls down the distribution, i.e., the agent performs the actual distribution. If the distribution is not appropriate for a particular agent, then that agent goes back to sleep, i.e., does not perform a distribution.
A profile or application is made up of individual xe2x80x9cactionsxe2x80x9d. The user may edit the action, edit the condition attached to the action, delete the action, or perform a xe2x80x9csearch and replacexe2x80x9d on the action. One problem with such a system is that it is not readily scalable, as the file server can be rapidly overrun with distribution requests.
Further, it should be recognized scalability is important in data distribution systems of this type. Generally, scalability refers to how well a system can adapt to increased demands. Scalability is an important feature because one can invest in and develop a system according to the present invention with confidence it won""t be quickly outgrown. It is an object of the present invention to provide scalability to these types of systems.
A method and system for installing software on a plurality of microprocessor based devices each being accessible over a computer network, said method comprising: identifying component data associated with a software application using a first electronic device; generating a first server update algorithm by comparing said component data against data present on a first server and executing said first server algorithm thereby duplicating said component data on said first server; generating a second server update algorithm by comparing said component data on said first server against data present on a second server and executing said second server algorithm thereby duplicating said component data on said second server; generating a second device update algorithm by comparing said component data on said second server to data present on a second device and installing said software application on said second device by executing said second device update algorithm.